﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace QLKHACHHANG.DanhMucForm
{
    public partial class frmNhom : DevExpress.XtraEditors.XtraForm
    {
         frmStaffConfig rootform;
        bool isSingle;
        public frmNhom(frmStaffConfig root)
        {
            InitializeComponent();
            rootform = root;
            isSingle = false;
        }
        public frmNhom()
        {
            InitializeComponent();
            isSingle = true;
        }       
        private void frmMau_Load(object sender, EventArgs e)
        {
            
            try
            {
                // TODO: This line of code loads data into the 'ds_Nhom.tbl_PQ_Nhom' table. You can move, or remove it, as needed.
                this.tbl_PQ_NhomTableAdapter.Connection.ConnectionString = SetConfig.getAppSetting("ConnectionString");
                this.tbl_PQ_NhomTableAdapter.Fill(this.ds_Nhom.tbl_PQ_Nhom);
                gvNhom.FocusedRowHandle = -999997;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void frmNhom_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn thoát khỏi màn hình " + this.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                if (!isSingle) rootform.UpdateBophan();
            }
            else
            {
                e.Cancel = true;
            }
        }
        private void ResetForm()
        {
            btThem.Text = "Lưu";
            txtManhom.Properties.ReadOnly = false;
            btXoa.Enabled = false;
            btSua.Enabled = false;
            txtManhom.Focus();
            txtManhom.Text = "";
            txtTennhom.Text = "";
            txtGhichu.Text = "";
            ckQuantri.Checked = false;
            gvNhom.FocusedRowHandle = -999997;
        }

        private void btThem_Click(object sender, EventArgs e)
        {
            if (btThem.Text == "Thêm")
            {
                // reset
                ResetForm();
            }
            else
            {
                //luu 
                if (txtManhom.Text.Equals("") || txtTennhom.Text.Equals(""))
                {
                    MessageBox.Show("Vui lòng xem lại thông tin nhập vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    try
                    {
                        DataRow row = ds_Nhom.tbl_PQ_Nhom.NewRow();
                        row["Manhom"] = txtManhom.Text;
                        row["Tennhom"] = txtTennhom.Text;
                        row["Ghichu"] = txtGhichu.Text;
                        row["Quantri"] = ckQuantri.Checked;
                        ds_Nhom.tbl_PQ_Nhom.Rows.Add(row);
                        this.tbl_PQ_NhomTableAdapter.Update(this.ds_Nhom.tbl_PQ_Nhom);
                    }
                    catch (Exception ex)
                    {
                        if (ex.Message.Contains("constrained to be unique"))
                        {
                            MessageBox.Show("Không lưu được do thông tin đã bị trùng, xin vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else MessageBox.Show("Lưu thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                }
                ResetForm();
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có muốn xóa bộ phận hàng có mã: " + txtManhom.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    txtManhom.Text = "";
                    txtTennhom.Text = "";
                    txtGhichu.Text = "";
                    ckQuantri.Checked = false;
                    gvNhom.DeleteSelectedRows();
                    this.tbl_PQ_NhomTableAdapter.Update(this.ds_Nhom.tbl_PQ_Nhom);
                }
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("conflicted"))
                {
                    MessageBox.Show("Không xóa đơợc do thông tin được sử dụng bởi chức năng khác, vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else MessageBox.Show("Xoá thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.tbl_PQ_NhomTableAdapter.Fill(this.ds_Nhom.tbl_PQ_Nhom);
            }
        }

        private void btSua_Click(object sender, EventArgs e)
        {
            try
            {
                gvNhom.GetFocusedDataRow()["Tennhom"] = txtTennhom.Text;
                gvNhom.GetFocusedDataRow()["Ghichu"] = txtGhichu.Text;
                gvNhom.GetFocusedDataRow()["Quantri"] = ckQuantri.Checked;
                this.tbl_PQ_NhomTableAdapter.Update(this.ds_Nhom.tbl_PQ_Nhom);

            }
            catch (Exception ex)
            {
                MessageBox.Show("Sửa thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void gvNhom_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            if (gvNhom.FocusedRowHandle >= 0)
            {
                txtManhom.Text = gvNhom.GetFocusedDataRow()["Manhom"].ToString();
                txtTennhom.Text = gvNhom.GetFocusedDataRow()["Tennhom"].ToString();
                txtGhichu.Text = gvNhom.GetFocusedDataRow()["Ghichu"].ToString();
                ckQuantri.Checked = gvNhom.GetFocusedDataRow()["Quantri"].ToString() == "True" ? true : false;
                txtManhom.Properties.ReadOnly = true;
                btSua.Enabled = true;
                btXoa.Enabled = true;
                btThem.Text = "Thêm";
            }
            else
            {
                ResetForm();
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            Close();  
        }

        private void btRefresh_Click(object sender, EventArgs e)
        {
            this.tbl_PQ_NhomTableAdapter.Fill(this.ds_Nhom.tbl_PQ_Nhom);
        }
    }
}